Method and system for providing a link in an electronic file being presented to a user

ABSTRACT

A method for providing a link in an electronic file being presented to a user which includes defining a customized viewpoint for the user. The viewpoint includes a preference for the user that provides an association between a data pattern and a computer network resource. The method also includes generating a request for content, receiving an electronic file in response to the request, and evaluating the electronic file to recognize a match between at least one portion of the electronic file and the data pattern. Upon recognizing a match, the electronic file is modified to include a link to the computer network resource associated with the matching data pattern, and the modified electronic file is presented to the user. Thus, the link included in the electronic file presented to the user is customized for the user, and different users who retrieve the same content can be provided with links to different computer network resources depending on their respective viewpoints.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 11/421,688 entitled “Method and System for Providing a Link inan Electronic File Being Presented to a User”, filed Jun. 1, 2006;

which is a continuation of U.S. patent application Ser. No. 11/267,873filed Nov. 4, 2005 and now abandoned;

which is a continuation-in-part of U.S. patent application Ser. No.09/606,422, filed Jun. 29, 2000 and now abandoned;

which claims the benefit of provisional U.S. Patent Application No.60/202,390, entitled “Method and Apparatus for Displaying an ElectronicFile to a Requestor”, filed May 8, 2000.

The present application is also related to: U.S. patent application Ser.No. 09/583,706, entitled “Method and System for Transmitting Data from aDestination to a User Over a Network Using a Variable Link”, which wasfiled May 31, 2000 and now abandoned; U.S. patent application Ser. No.11/421,669 filed Jun. 1, 2006 and issued as U.S. Pat. No. 7,933,893 onApr. 26, 2011 and U.S. patent application Ser. No. 11/421,690 filed Jun.1, 2006 and now abandoned.

Each of the above-referenced applications are incorporated by referenceherein in their entirety.

FIELD OF THE INVENTION

The invention relates to methods and systems for presenting electronicfiles to users. In particular, the invention relates to methods andsystems for providing a link to a computer network resource in anelectronic file being presented to a user.

BACKGROUND OF THE INVENTION

In recent years, the use of the Internet for a variety of purposes hasexpanded considerably. These purposes include research, communication,entertainment, and electronic commerce. As consumers and other usershave connected to the Internet, commercial entities have increasinglysought to use the Internet as an advertising medium to presentadvertisements to those users.

Internet advertising methodology typically involves presenting banneradvertisements (i.e., “banner ads”) on documents retrieved from Websites that experience high volumes of Internet traffic. Banner ads maytake a variety of forms, and often include a graphic displayed at aportion (e.g., the top) of a Web page. Banner ads may be managed by theadministrator of a Web site or other entity (e.g., DoubleClick, Inc. ofNew York, N.Y.), and may be presented at times and/or undercircumstances specified by the advertisers. Typically, an advertiseragrees to make a small payment to the administrator of a host Web siteeach time that a banner ad is presented to a user, and/or agrees to makea payment to the administrator whenever a user accesses the advertisedcontent using the banner ad (e.g., by clicking on the banner ad using amouse). Since different Web sites attract different segments of theconsuming public, an advertiser often chooses to place its banner ads onparticular Web sites based on an evaluation of which Web sites arelikely to provide the greatest exposure to its potential customers.

At many Web sites, banner ads are presented to users in a “static”fashion, so that every user is presented with the same banner ads. Atother Web sites, however, banner ads are presented to users in a“targeted” fashion, so that different users will be presented withdifferent banner ads. For example, a Web site hosting a search utilitymay present a particular banner ad to a user based on the search termsentered by the user on the Web site. In this application, each potentialadvertiser may register for a particular keyword with the search utilitysuch that, when a user enters a keyword on the Web site, the searchutility will present the banner ad of the advertiser having registeredfor that keyword. For example, a casino resort may register the keyword“poker” such that a user who is searching for rules pertaining to aparticular variation of poker may receive a tailored banner ad for thecasino resort, along with the search results that were deemed to bepertinent by the search utility.

Although this form of Internet advertising has proven popular, itsuffers from drawbacks. One drawback is that some advertisers who seekto advertise online have been unsuccessful in targeting their desiredconsumer audience. For example, some advertisers have been unable tofind sufficiently popular Web sites that are relevant to the goods orservices being advertised. Another drawback is that the cost ofadvertising through popular, well-known “portal” sites on the Internet,such as sites operated by large Internet service providers (e.g., AOL)or large searching/indexing services (e.g., EXCITE™, YAHOO!®,ALTAVISTA®, etc.), may be excessively expensive, particularly for aretailer of a wide range of products that wants to register manykeywords, or for a retailer of a niche product who wants to advertise toa niche audience. Also, an advertiser may, because of budgetary or timeconstraints, choose only a subset of Web sites where its targetconsumers may be found. Further, Web site administrators may be burdenedto tailor advertisements to each particular visitor, and may presentadvertisements indiscriminately or inefficiently, thereby reducing thevalue of these advertisements. Thus, current Internet advertisingmethods often fail to successfully connect advertisers with theirtargeted consumers.

There have also been proposals for collecting information aboutconsumers in order to tailor advertisements and to deliver other contentto the consumers based upon known or suspected preferences of theconsumers. The proposals generally suggest collecting demographicinformation such as age, income, home address and occupation, andpreference information such as favorite colors and preferred contentdelivery mode (e.g., audio or video). The information is then used totailor delivery of information to the consumer by selecting from avariety of available content and advertisements provided by the Web sitevisited by the consumer or provided by an associated content oradvertisement publisher. U.S. Pat. No. 5,717,923, issued Feb. 10, 1998to Dedrick, discloses such an approach. Unfortunately, such approacheshave not been widely used, perhaps due to the complexity and addedeffort required of a Web site administrator or Internet Service Provider(“ISP”) to implement and administer such an arrangement, or due toprivacy concerns arising from the use of consumer-specific information.

As part of efforts to optimize the interpretation and display of contentposted on Web pages, Web browser software often provides a variety of“preference” settings by which a user may adjust various aspects of hisor her browser software. These preferences may allow a user to controlsecurity settings of the browser software, to change the format of Webpage display (e.g., color choices for displaying hyperlinks), or tochange printing format(s). Browser software may also permit a user tostore content received from a Web site, so that the content may bereviewed at a later time, or may be retrieved and manually modified(e.g., so the user can insert the content in a new file document or Webpage). Browser software may further support the installation ofthird-party enhancements or “plug ins” to expand functionality of thebrowser software.

One “plug in” for browser software, which is referred to as “Flyswat”and is available from Flyswat, Inc., may be used to enhance Web pagesbeing viewed with browser software to incorporate hyperlinks notincluded in the originally-authored Web page. These hyperlinks, forexample, may provide cross-referencing from a product name to a vendorof that product. All Flyswat users, however, receive the same set ofhyperlink enhancements, and thus all of the users are treatedidentically, much as in the case of static banner ads originated by Website administrators. Thus, this “plug-in” enhancement fails toadequately target consumers that are being sought by particularadvertisers.

SUMMARY OF THE INVENTION

An objective of the invention is to improve on the prior art tofacilitate a more accurate presentation of information to targeted usersin order to improve the efficiency of use of the Internet and Web sitesthereon by users, Web site administrators and third parties. Thisobjective is applicable to a variety of purposes including deliveringadvertisements to targeted consumers, and providing users withcustomized cross-references to network resources.

The invention is based on Applicants' recognition that benefits may berealized by enabling a party other than the author or administrator ofcontent to alter or manipulate the content in a customized manner for auser, prior to or as part of delivery or display of the content to theuser. The content may be customized for an individual user, a userbelonging to a particular category or class, or a user who belongs to aparticular organization. In one embodiment, a Web browser processes thecontent retrieved by a user, based on a viewpoint defined for the user,to insert at least one hyperlink into that content. Each hyperlinkprovides the user with a linkage, or cross-reference to a computernetwork resource.

One embodiment of the invention provides a method for providing a linkin an electronic file being presented to a user. The method includesdefining a customized viewpoint for the user that includes a preferencefor the user. The preference for the user provides an associationbetween a data pattern and a computer network resource. The method alsoincludes generating a request for content, receiving an electronic filein response to the request, and evaluating the file to recognize a matchbetween at least one portion of the file and the data pattern. Uponrecognizing a match, the file is modified to include a link to thecomputer network resource associated with the matching data pattern, andthe file is presented to the user.

Another embodiment provides a method for cross-referencing content of afirst data structure to a computer network resource. The method includesdefining a customized viewpoint for a user that includes a preferencefor the user, the preference for the user providing an associationbetween a data pattern and a computer network resource, locating thedata pattern in the first data structure, and generating a second datastructure including a link indicating the network resource associatedwith the located data pattern.

Another embodiment of the invention provides a system for providing alink in an electronic file being presented to a user. The systemincludes means for defining a customized viewpoint for the user thatincludes a preference for the user that provides an association betweena data pattern and a computer network resource. The system furtherincludes means for generating a request for content, means for receivingan electronic file in response thereto, means for evaluating the file torecognize a match between a portion of the file and the data pattern,means for modifying the file upon recognizing a match to include a linkto the network resource associated with the matching data pattern, andmeans for presenting the file to the user.

Another embodiment of the invention provides a system forcross-referencing content of a first data structure to a computernetwork resource. The system includes means for defining a customizedviewpoint for a user that includes a preference for the user, thepreference for the user providing an association between a data patternand a computer network resource, means for locating the data pattern inthe first data structure, and means for generating a second datastructure including a link indicating the computer network resource thatis associated with the located data pattern.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will become more fully understood from the followingdetailed description, taken in conjunction with the accompanyingdrawings, wherein like reference numerals refer to like parts, in which:

FIG. 1 is a flow chart representing an exemplary method for providing alink in an electronic file being presented to a user, in accordance withone embodiment of the present invention;

FIG. 2A is a block diagram illustrating an exemplary computer networkenvironment suitable for implementing the method shown in FIG. 1;

FIG. 2B is a block diagram illustrating an alternative computer networkenvironment suitable for implementing the method shown in FIG. 1;

FIG. 3 is a block diagram illustrating an exemplary computer systemwhich can serve as any of the user devices shown in FIGS. 2A and 2B;

FIG. 4 is block diagram illustrating the Domain Name System server (“DNSserver”) shown in FIG. 2A or Dial-up Server shown in FIG. 2B;

FIG. 5 is a table representing an embodiment of the preference databaseof FIG. 3 or 4, populated by sample values for illustration only;

FIG. 6 is a table representing an embodiment of the display codedatabase of FIG. 3 or 4, populated by sample values for illustrationonly;

FIG. 7 is a table representing an embodiment of the user accountdatabase of FIG. 4, populated by sample values for illustration only;

FIGS. 8A and 8B combined are a flow chart of operations performed by theuser device of FIG. 3 in modifying requested content;

FIG. 9 is a flow chart of operations performed in updating thepreference database of FIG. 5 in response to a user's acceptance of anoffer;

FIG. 10 is a flow chart of an alternative method for updating thepreference database in response to a user's manual modifications; and

FIG. 11 is a flow chart of an alternative method for updating thepreference database of FIG. 5 as part of the installation of a Webbrowser.

DETAILED DESCRIPTION Definitions

For the convenience of the reader in understanding the detaileddescription of the invention which follows, the following glossaryprovides definitions for various terms and acronyms used throughout thespecification:

“Association” refers to a relationship between one object and anotherobject, such as a relationship between a data pattern and the address(e.g., Uniform Resource Locator or “URL”) of a computer networkresource.

“Browser” refers to a computer program operable to access and displaycontent. A browser operable to access and display content that resideson the World Wide Web is referred to as a “Web browser”. A browser cantypically access and display data formatted as hypertext, plain text,file lists accessible via the File Transfer Protocol (“FTP”), graphics,audio, multi-media, and other formats. A browser is also operable toaccess a computer network resource via activation of a hyperlink to thatnetwork resource.

“Computer network resource” refers to a resource available on a computernetwork. An example of a computer network resource includes, forexample, a file, a Web page or site, an application, an applet, ascript, etc. Each computer network resource is typically identified byan address (e.g., a “URL”), which can be associated with a hyperlink toprovide a linkage or cross-reference to that particular resource.

“Content” refers to data (e.g., graphics, text, audio, video, a program,a file, a Web page, etc.) that is available from a computer server.

“Data pattern” refers to a recognizable arrangement of data that may befound in a requested electronic file. Typical data patterns may includeone or more keywords, text patterns, graphic patterns, or other datapatterns.

A “hyperlink” (also referred to as a “link”) refers to a graphic, textor program element in a hypertext document that provides a linkage to acomputer network resource. A text hyperlink is typically displayed usingtext of a predetermined color (e.g., blue) and/or attribute (e.g.,underlining). A graphic hyperlink may be indicated by a graphic image.Hyperlinks are often used to provide linkages between Web pages orfiles.

“Markup Language” refers to a set of codes or tags embedded in a filethat instruct a computer how to format the file for purposes of printingor display, as well as how to index and link the content of the file. Amarkup language, as presented, may incorporate a combination of filescomprising graphics, text, programs, and/or cross-references. Markuplanguages include the Hypertext Markup Language (HTML), SGML, XML, VRMLand NRML.

“Preference”, used in the context of a viewpoint (as defined below),refers to an association made between one or more data patterns and acomputer network resource. The network resource may be a Web page orsite, an application, an applet, a script, or another resource, and theassociation may be between one or more data patterns and the address orURL of the resource.

“Uniform Resource Locator” or “URL” refers to an address for use inaccessing a computer network resource on the Internet or other network.The address of a computer network resource is typically provided by itsURL.

“Viewpoint” refers to a set of one or more preferences for a user. Aviewpoint is used by a browser or other computer program to modifycontent delivered to a user by including a hyperlink to a computernetwork resource associated with any matching data pattern found withinthe content.

Exemplary Use

As a non-limiting, exemplary use of the invention, an advertiser seekingto target consumers may create one or more preferences, each defining anassociation between a computer network resource of that advertiser(e.g., a Web site where that advertiser's products are sold) andrelevant data patterns. For example, a book retailer may create apreference providing an association between the title of a book, thename of an author and/or the word “book”, and the address or URL of aWeb page of that retailer's Web site where the book, a book by thatauthor, or books in general, may be purchased. The retailer could thentarget advertisements to frequent book buyers by causing the insertionof these book-related preferences only into viewpoints used by frequentbook buyers. At the same time, a movie retailer may create a preferenceproviding an association between the title of a movie, the name of anactress and/or the word “movie”, and the address of that retailer's Website where that movie, a movie starring that actress, or movies ingeneral, may be purchased. The movie retailer could then targetadvertisements by causing the insertion of the movie-related preferencesinto viewpoints used by other users. Customized viewpoints are thusdefined for both sets of potential purchasers, with the viewpoints usedby the frequent book buyers being customized to include the preferencesfrom the book retailer, and the viewpoints used by the other users beingcustomized to include the preferences from the movie retailer.

Using these customized viewpoints, the frequent book buyers will beprovided with links to the book retailer in their retrieved content,while the other users will be provided with links to the movie retailerin their retrieved content, even in response to the same data patternappearing in their retrieved content. As an example, assume that thebook retailer stocks a book entitled “The Committee” by Mike Nugent, andthe movie retailer stocks a movie of the same title. The book retailermay provide a preference defining an association between the datapattern “The Committee” and its Web site (“www.bookstore.com”), andinsert this preference into the viewpoints used by the frequent bookbuyers. The movie retailer may provide a preference defining anassociation between the same data pattern (i.e., “The Committee”) andits Web site, and insert this preference into the viewpoints used by theother users. If one of the frequent book buyers then requests a Web pageincluding the data pattern “The Committee”, he or she will be presentedwith a hyperlink to the Web site for the book retailer. If one of theother users requests that same Web page, however, he or she will bepresented with a hyperlink to the Web site for the movie retailer. Thus,the hyperlink presented to each user depends on the customized viewpointfor that user. (Note that the extra spaces in the URL addresses in thisapplication prevent the URLs from being interpreted as embeddedhyperlinks when this application is viewed.)

In this example, each retailer caused the insertion of the book- ormovie-related preferences into the viewpoints used by frequent bookbuyers or other users. In one embodiment, the retailers may each havecaused these insertions by offering money or other consideration tousers to have the users agree to include the preferences into their ownviewpoints. Each user was thus able to “customize” his or her viewpointby deciding which offers to accept.

Description of Specific Embodiments

Referring to FIG. 1, a method 10 for providing a link in an electronicfile being presented to a user includes defining a customized viewpointfor a user that includes a preference for the user, with the preferenceproviding an association between a data pattern and a computer networkresource (step 12), generating a request for content (step 14), andreceiving an electronic file in response to the request (step 16).Method 10 further includes evaluating the electronic file to recognize amatch between at least a portion of the file and the data pattern (step18). If no match is found, the electronic file is presented (e.g.,displayed) to the user without being modified (step 20). However, uponrecognizing a match at step 18, the electronic file is modified toinclude a link to the computer network resource that is associated withthe matching data pattern in accordance with the preference (step 22),and the modified file is presented to the user (step 24). The viewpointfor the user may include one or more preferences, each preferenceproviding an association between one or more data patterns and acomputer network resource.

At step 12, a customized viewpoint for a user that includes at least onepreference can be defined in a variety of ways. In one embodiment, acustomized viewpoint for a user is defined by a preference databasestored at the user's computer. The preference database includes at leastone preference, each defining an association between at least one datapattern and a computer network resource such as a Web page, a Web site,an application, an applet, a script, etc. When the user's computerreceives an electronic file at step 16, the file may include one or moredata patterns that match one or more of the data patterns stored in thepreference database. Each matching data pattern is used to insert, intothe file, a hyperlink to the computer network resource associated withthe matching data pattern by a preference. Hypertext markup language,for example, may be used to insert such a hyperlink into the retrievedcontent.

A viewpoint may be “customized” for a user such that the viewpointdefined for the user may differ from another viewpoint defined foranother user. Thus, a viewpoint may be customized for an individualuser, or for a user belonging to a particular category, class,organization or other group of users. A viewpoint may be customized fora user in various ways. In one embodiment, a viewpoint is selected for auser from among a plurality of viewpoints based upon data thatidentifies the user, or based upon data that is provided by the user.For example, a viewpoint customized for frequent book buyers may beselected in response to a user entering information indicating aninterest in buying books. According to another example, a user can usean input device to select a customized viewpoint from among a pluralityof viewpoints stored on his or her computer, such as a first viewpointproviding at least one book-related preference and a second viewpointproviding at least one movie-related preference. These viewpoints may,for example, have been incorporated within the user's Web browser, ormay have been installed at another time. Then, the user may use an inputdevice to select the viewpoint that the user prefers. If the userprefers books to movies, the user may select the viewpoint providing thebook-related preferences. The selected viewpoint may then be used forinserting hyperlinks into the content received by the user.

In another embodiment, an organization may establish one or morecustomized viewpoints to facilitate the ability of its members toconduct the business of the organization. For example, a corporation mayestablish a first viewpoint for use by its sales agents, and a secondviewpoint for use by its engineers. The viewpoint selected for aparticular user then depends on the category or class of users to whichthat user belongs. For example, the first viewpoint could be customizedto include preferences defining associations between inventory itemnames and hyperlinks to the Web sites of particular suppliers from whichthe corporation typically buys such items, such that the sales agentswould be provided with hyperlinks to these suppliers within any receivedcontent. The second viewpoint could be customized to include preferencesdefining associations between engineering keywords and links tocorporate engineering specifications, so that the engineers would beprovided with hyperlinks to these specifications within any receivedcontent. Schools, churches and other organizations could also establishone or more viewpoints for the use of its members. Viewpoints may alsobe customized based upon a characteristic of the user. For example, achamber of commerce for a town could customize a viewpoint to includepreferences defining associations between keywords (e.g., “restaurants”)and network resources providing information about local businesses(e.g., “Joe's Pizza”). This viewpoint could be selected to provide localusers with hyperlinks to the local businesses based on, for example, thezip code of the user, or the users' ISP for Internet access.

In another embodiment, viewpoints are automatically assigned to users.For example, data identifying the viewpoint selected for a user may bestored in a “cookie” file in the user's computer to allow the selectedviewpoint to be automatically retrieved without interaction with theuser. For another example, a viewpoint may be assigned automatically toa user based upon data about that user, such as data about the user'sbrowsing history (e.g., if data indicates that a user frequentlyaccesses book-related Web sites, then a viewpoint providing book-relatedpreferences could be automatically assigned to the user). A viewpointcould also be automatically assigned to a user based upon other dataassociated with that user, such as demographic data (e.g., age, gender,address, occupation, income, interests, hobbies, etc. of that user).

The establishment of viewpoints and manipulation of content to includelinks to computer network resources associated with data patterns may beperformed by a user's computer (e.g., a personal computer, personaldigital assistant (“PDA”), a television with access to a wide areanetwork, a computer terminal, etc.), or may be performed in whole or inpart by a second computer in communication with the user's computer viaa network (e.g., a local area network, a wireless network, a wide areanetwork, a public switched telephone network, the Internet, etc.). Forexample, if a user receives content via a server operated by an ISP,that server can store viewpoints and/or manipulate content beforeproviding that content to the user. Alternatively, a user can configurehis computer system to allow any retrieved content to be processed by athird-party server, other than the user's ISP server. In anotheralternative, the user's ISP server, or a third-party server, storesviewpoints, which may be retrieved by the user's computer and used tomanipulate content retrieved by the user.

In one embodiment, the retrieved content is user-displayable. In otherembodiments, the retrieved content may be data that is not intended foruser display, such as a database, an applet or a script (e.g., basedupon the Java standard). In embodiments where the retrieved content isnot displayed, links may also be inserted into the retrieved content sothat they may be used by the recipient as part of evaluating the data,or executing the applet or script. For example, if content retrieved bya user includes an applet which will play a first sound (stored in filenamed “firstsound.au”) according to the AudioClip interface in the Javaapplet package, the user's viewpoint could associate the first soundwith a second sound (e.g., stored in a file “secondsound.au”) such that,when the applet executes, the second sound is played rather than thefirst.

As links are inserted into retrieved content, an identification of theoriginator of the link may be provided in a tag of the link. Theoriginator may be, for example, a party such as an advertiser or othercommercial entity that established the viewpoint. The originator mayalso be a person, computer system, or browser that manually orautomatically established the viewpoint. For example, a commercialentity seeking to establish a viewpoint may solicit a user to alter theuser's viewpoint to include one or more added or alternate preferencesin exchange for a payment, merchandise credit, discount, coupon or otherbenefit (e.g., a sweepstakes entry). After the user authorizes thealteration, hyperlinks may be inserted into content that is retrieved bythe user in accordance with the altered preferences. Modifications maybe solicited from other parties (e.g., a party that created theviewpoint or a prior preference, or that stores the viewpoint).

As links are generated and used, usage fields in a preference databasemay be updated to reflect the number of times that a hyperlink has beengenerated based upon a particular preference. The database may also beupdated to reflect the number of times that a hyperlink generated from aparticular preference has been used. The usage information can be usedto delete, deactivate or otherwise change the status of thecorresponding preference in the preference database after apredetermined number of uses. For example, a preference may be disabledonce it has been used to insert twenty (20) hyperlinks into receivedcontent, or after a user has activated a hyperlink included withinreceived content due to the preference a total of ten (10) times.

Preferences may also “age”, such that their status changes with time.For example, an advertiser may offer to pay a user an amount of money inexchange for the user's agreement to include a particular preference inher viewpoint for a predetermined period of time. If the user acceptsthe offer, the preference is inserted into her viewpoint for use duringthat period, after which the preference is disabled. A commercial entitythat solicits the inclusion of a particular preference may conditiondelivery of the offered payment, credit, discount, coupon or otherbenefit upon use of that preference for a predefined time period, thegeneration of a predetermined number of hyperlinks using the preference,a predetermined number of uses of hyperlinks generated by thepreference, and/or use of the link for a specific purpose (e.g., apurchase).

Other information for each preference may also be stored in thepreference database. For example, a geographic location may beidentified to indicate where a preference may or may not be used.Exclusionary criteria may identify retrieved content for which apreference may not be used. One or more monetary values may beindicated, identifying a value for placement of the preference in thedatabase, a value for insertion of a link derived from the preference,or a value for use of a hyperlink derived from the preference. Thelatter can be used to automatically create or provide payments, credits,discounts, coupons or other benefits that are due for the insertion ofpreferences, generation of links from preferences, or the use of linksgenerated from preferences. Thus, the party that established apreference may be notified upon use of (i) the preference or (ii) a linkderived therefrom, which may lead to an exchange of monetary value.

A given data pattern may be associated with multiple computer networkresources. For example, multiple associations may occur if multiplecommercial entities solicited the insertion of preferences into aviewpoint. In this situation, when the given data pattern is found inretrieved content, one of the preferences is selected, in apredetermined fashion or at random, with a link defined by the selectedpreference inserted into the content. Alternatively, an applet may beinserted into the content, permitting the user to select from among themultiple available associations for the matched data pattern.

In one embodiment, the invention is implemented in the form of a Webbrowser that is capable of dynamically providing hyperlinks in anelectronic file being presented to a user. The browser resides locallywithin a user device, such as a personal computer, and is associatedwith a viewpoint which is customized for the user to include at leastone preference for the user. The viewpoint may be implemented, forexample, using a preference database for storing one or more preferencesfor the user. Each of the preferences provides an association betweenone or more data patterns and a computer network resource, such as a Website, Web page, document, applet or script.

In response to receiving a request from a user to retrieve markuplanguage-based electronic content, the browser performs a contentretrieval routine. The content retrieval routine causes the browser toidentify and access markup language-based electronic content identifiedby the user. Upon retrieval of the identified content, the browserexamines the content for one or more data patterns defined by theviewpoint for the user. As a specific example, the browser evaluates theuser-viewable text portion of the content and performs comparisonsbetween the text found in this portion and one or more patternsidentified by the preference database for the user's viewpoint. If thecomparison yields a match between a data pattern stored in thepreference database and a data portion of the requested content, thepreference database is again accessed to retrieve an address or URL of acomputer network resource that is associated with the matching datapattern. A hyperlink based upon this address is then incorporated intothe content at or near the location of the matching data pattern,thereby altering the user-viewable text to reflect the hyperlink. Therequested content, altered by incorporating any supplemental hyperlinks,is then stored and presented to the user by the user device.

In one embodiment, the indication of the hyperlink presented to the userrepresents the matched data pattern or keyword. Thus, the user may bepresented with a hyperlink including the matched data pattern (e.g.,“The Committee”), which appears in place of the text (e.g., “TheCommittee”) in the unmodified electronic file. By activating thehyperlink, the user may be connected to the home page of the computernetwork resource (e.g., “www.bookstore.com”), or to a specific Web pageof that computer network resource, that is associated with the matchingdata pattern (e.g., “www.bookstore.com/The_Committee”). The user maythen purchase the book directly from that specific Web page in a knownmanner.

The preferences stored in the preference database that provideassociations between data patterns and addresses of correspondingcomputer network resources, and which establish a viewpoint for use by auser, may be established by a publisher/developer of the Web browser, auser/installer of the browser, a third party such as an online merchant,service provider or portal type Web site wishing to influence Webtraffic, and/or an administrator that wishes to establish certainassociations for members of an organization, etc. The respectiveprocesses, and motivations for generating associations within thepreference database, by the parties listed above are described below.

Additionally, it is envisioned that the disclosed Web browser mayfacilitate the provision of benefits to users and/or service providersin exchange for allowing the preference database to be updated by thirdparties. The benefits may be provided merely for allowing the preferencedatabase to be updated, in response to hyperlinks being generated basedupon the updates, and/or in response to users activating the hyperlinksspecified by the updates. The third party may be, for example, a serviceprovider, an online merchant, or a portal-type Web site. The benefitsprovided to a user and/or service provider may include monetarypayments, discounts and/or promotional offers.

Alternatively, benefits may be provided in exchange for allowing theinstallation of a software “plug-in”, module or upgrade. A “plug-in” isan auxiliary software program used to enhance a browser to permit theaccess and display of additional file formats, such as Portable DocumentFormat (“PDF”), Tagged Image File Format (“TIFF”), etc. An exemplaryprocess by which benefits are provided is described in relation to FIG.9.

Method 10 can be implemented in various computer network systems such asthe two network systems shown in FIGS. 2A and 2B. It will be understoodby a person of skill in the art, however, that these two systems aremerely illustrative examples of computer network systems in which method10 may be implemented, and that method 10 may also be implemented inother computer network systems having other combinations of components.

Referring to FIG. 2A, method 10 can be implemented using a computernetwork 100 including a plurality of user devices 110, 120 and 130, witheach user device residing at a node of a local area network (“LAN”) 132.LAN 132 is a network of computers that exchange data, and share a commonaccess portal to the Internet 160. Network 100 may include more or fewerthan the three (3) user devices shown. Each user device 110-130 mayinclude a personal computer, a personal digital assistant (PDA), aWebTV™ terminal, an Internet appliance, a cellular phone, or anotherdevice operative to communicate over a network, and to request, receiveand present markup language-based files.

Each user device 110, 120 and 130 can generate a request for electroniccontent (step 14 of method 10), with the electronic content typicallyaccessed based upon the address of that content, as is known in the art.In one embodiment, a user initiates a request for electronic content byentering (e.g., typing) its URL into an address bar area of the userinterface of his or her Web browser. Then, the user device generates arequest for the addressed content. For example, to initiate a requestfor book reviews on a Web page hosted on a Web server run by a newspaper(e.g., “City Times”), a user may enter the URL“www.citytimes.com/bookreviews” into the address bar area of the user'sWeb browser. A user may, alternatively, initiate a request for contentby activating a hyperlink that has been presented to the user by userdevice 110, 120 or 130. For example, a user may activate a hyperlink(e.g., by “clicking” a mouse on the hyperlink) to initiate a request toretrieve the book reviews from the newspaper's Web server. In eithercase, the user device would generate an appropriate request for thecontent, which is communicated to a Domain Name System server (“DNSserver”) 142 via LAN 132 for evaluation by DNS 142. DNS server 142 is acomputer server that operates name resolution software that allows usersto locate computers on the Internet by their domain names.

As known in the art, DNS server 142 evaluates each requested addressreceived from any of user devices 110, 120 or 130, and determines if therequested content must be accessed via a Wide Area Network (“WAN”), suchas Internet 160. If the requested content must be accessed via Internet160, the request is delivered via LAN 132 to a local router 144 fordelivery to Internet 160. A router is an intermediary device in acommunications network that facilitates the delivery of messages fromtransmitting to receiving devices. Internet routing protocols cause therequest to be delivered to a host Web server 140 via a remote router150. Web server 140 accesses the requested content and returns anelectronic file containing that content to router 144 via router 150 andInternet 160. Router 144 relays the file to user device 110, 120 or 130for presentation to the user. Thus, the user device 110, 120 or 130receives the electronic file in response to the request (step 16 ofmethod 10).

Upon receipt of the electronic file, but before displaying the file tothe user, the Web browser causes user device 110, 120 or 130 to evaluatethe file to recognize any match between at least a portion of the fileand any data pattern stored as a preference by the browser (step 18 ofmethod 10). If no match is found, the electronic file is presented(e.g., displayed) to the user without modification (step 20). However,upon recognizing a match, the user device modifies the file by includinga hyperlink to a computer network resource that is associated with thematching data pattern by the preference (step 22), and then presents(e.g., displays) the modified electronic file to the user (step 24).

For example, after receiving an electronic file for the book review pagefrom the newspaper's Web site, the user device may evaluate theuser-viewable ‘text portion of that file to recognize any match betweenany portion of the Web page and any of the data patterns stored as apreference for the user. In this example, assume that the customizedviewpoint for the user includes a preference providing an associationbetween the two data patterns “book” and “The Committee”, and theaddress of an online book retailer (e.g., “www.bookstore.com”). If nomatch is found, the electronic file is presented to the user withoutmodification. However, if a match is found (e.g., “The Committee” isfound in the content), the user device modifies the file by inserting ahyperlink to a computer network resource associated with the matcheddata pattern (e.g., “www.bookstore.com”) and presents the modified fileto the user with an indication of the hyperlink. If the user activatesthis link (e.g., by clicking on the link with a mouse), he or she may beconnected to “www.bookstore.com”, where the book “The Committee” can bepurchased.

Referring to FIG. 2B, method 10 of FIG. 1 may also be implemented by asecond computer network 170, wherein each user device 110, 120 and 130can access Internet 160 via a dial-up account, in a known manner. Eachof the user devices accesses a dial-up server 175 via a telephoneconnection of a Public Switched Telephone Network (“PSTN”) 178.Typically, dial-up server 175 is maintained by an Internet serviceprovider (“ISP”), such as “AMERICA ONLINE”. Each user device uses amodem or other communication interface, and dial-up networking software,to communicate with dial-up server 175. Each user device may be apersonal computer, a PDA, a WebTV™ terminal, a phone or other device toaccess a dial-up account, and to request, receive and present markuplanguage-based content. Any or all of user devices 110, 120, 130 mayalternatively access Internet 160 via other communication interfaces,such as Digital Subscriber Line (“DSL”) and/or cable modem interfaces.

In computer network 170, each user device 110, 120, 130 can generate arequest for the delivery of electronic content (step 14 of method 10),typically in the form of a URL, as is known in the art. Each request isdelivered to dial-up server 175, which evaluates the requested URL anddetermines if the requested content must be accessed through a Wide AreaNetwork (WAN) such as the Internet 160. If so, the request is deliveredto Internet 160. Internet routing protocols cause the request to bedelivered to a host Web server 140 via remote router 150 and a proxyserver 180. In response, Web server 140 accesses and returns therequested content via proxy server 180, router 150 and Internet 160 todial-up server 175, which relays an electronic file for the requestedcontent to the requesting user device. Thus, that user device receivesthe electronic file in response to the request (step 16 of method 10).In contrast to the arrangement shown in FIG. 2A, the requests aredelivered to Web server 140 via proxy server 180, which translates theaddresses used by Internet 160 to addresses used by Web server 140, andthus insulates the addresses used by Web server 140 from externalaccess. A proxy server similar to proxy server 180 could also be used innetwork 100 between Web server 140 and router 150, or between the userdevices and router 144.

As in the embodiment shown in FIG. 2A, upon receipt of the electronicfile but before displaying the file to the user (or before re-displayingthe file to the user, as in a re-load or automatic refresh cycle), a Webbrowser causes the user device to attempt to recognize a match betweenat least a portion of the file and any data pattern stored as apreference by the browser (step 18). For example, the user device maydetermine if at least a portion of text in the user-viewable portion ofthe file matches a data pattern stored as a preference by the browser.If no match is found, the file is displayed to the user withoutmodification (step 20). Upon recognizing a match, however, the userdevice modifies the file to include a hyperlink to a network resourceassociated with the matching data pattern (step 22), and presents themodified file to the user (step 24).

Referring to FIG. 3, one embodiment of each of user device 110, 120 and130 includes a processor 200 (e.g., a CPU or central controller) forexecuting instructions of computer programs and controlling operation ofthe user device 110, 120 or 130. Processor 200 has access to memory 202,such as random-access memory (RAM) and/or read-only memory (ROM) forstoring programs, data, variables, and/or a basic input-output system(BIOS). Processor 200 receives input data from one or more input devices204, and transmits output data to one or more output devices. Each inputdevice 204 may include a mouse, a keyboard, a touch-screen, amicrophone, a digital camera, a clock, etc. Each output device 206 mayinclude a computer monitor, an audio circuit/speakers, a printer, etc.Processor 200 communicates with networked computers via a communicationdevice 208. Device 208 may include a network interface card (“NIC”)coupled to a LAN as in FIG. 2A, a modem in a dial-up embodiment such asin FIG. 2B, or another type of communication device or interface.

Processor 200 has access to a mass storage device 210 for storingobjects such as programs and data. The stored objects may include anoperating system (“OS”) 212, a Web browser 214, a preference database216, and a display code database 218. OS 212 may be, for example,MICROSOFT WINDOWS®, Linux, MAC O/S, UNIX, or another operating system.

In one embodiment, Web browser 214 provides functionality for insertinghyperlinks into retrieved electronic files. In particular, by executinginstruction of Web browser 214, processor 200 is operable to generate arequest for content (e.g., a markup language-based electronic file) froma Web server, and to receive, modify and present the requested contentto a user. Processor 200 accesses preference database 216, whichincludes one or more records for storing one or more preferences. Eachpreference provides an association between one or more pre-registereddata patterns (e.g., words, phrases and/or graphics that may occur inmarkup language-based files) and an address of a corresponding computernetwork resource. When processor 200 finds that the requested contentincludes a data pattern stored in preference database 216, it inserts ahyperlink to the network resource associated with the matching datapattern (step 22 of method 10). In one embodiment, the hyperlink isinserted in a manner which depends on a code stored in display codedatabase 218, as described below.

Referring to FIG. 4, DNS server 142 (FIG. 2A) and dial-up server 175(FIG. 2B) each may include a processor 220 to execute instructions ofcomputer programs and to control operations of the respective server.Processor 220 has access to a memory 222, such as random access memory(RAM) or read only memory (ROM), for storage of computer programs, dataand a basic input-output system (BIOS). Processor 220 receives inputdata from one or more input devices 224, and transmits output data toone or more output devices 226. Each input device 224 may include amouse, a keyboard, a touch-screen, a microphone, a digital camera, aclock, etc. Each output device 226 may include a computer monitor, anaudio circuit and speakers, a printer, etc. Processor 220 alsocommunicates with networked computers via one or more communicationdevice(s) 228. Device(s) 228 may include a network interface card (NIC)in a LAN embodiment such as shown in FIG. 2A, or one or more modems in adial-up embodiment as shown in FIG. 2B.

Processor 220 has access to a mass storage device 230 which isconfigured to store objects such as programs and data. The objectsstored on storage device 230 may include an operating system (“OS”) 232suitable for a network server. For example, OS 232 may be “MICROSOFTWINDOWS® NT”, Linux, Unix, “NOVELL NETWARE”, or another suitableoperating system. Mass storage device 230 also stores shared filestructures used by computers on the network, which may include documentsof various forms created and shared by the members of the workgroupusing the network. In one embodiment, the shared file structures includea preference database 234, a display code database 236, and a useraccount database 238. Each of these databases is accessible to processor220 and other computers on the network.

Preference database 234, similar to preference database 216 (FIG. 3),includes one or more records for storing one or more preferences. Eachpreference provides an association between one or more pre-registereddata patterns (e.g., words, phrases and/or graphics that may occur inmarkup language-based files) and the address of a corresponding computernetwork resource. The preferences stored in preference database 234 atDNS server 142 or dial-up server 175 are accessible to multiple users,each of whom may also have a separate preference database 216 stored onhis or her user device. By storing preferences in server 142 or 175, thepreferences may be provided to all of the members of a workgroup who areconnected to server 142 or 175. The preferences stored within preferencedatabase 234 may be modified, for example, by a person responsible formanaging the preferences for the entire workgroup (e.g., a manager, oran Information Technology employee). These preferences may also bemodified by each user, if given permission to do so. If, however, a userwishes to add a preference for only his or her own use, the preferencemay be stored in preference database 216 rather than database 234. Inthat case, the user's Web browser 214 may retrieve preferences from bothlocally-stored preference database 216 and shared preference database234.

In one embodiment, all of the preferences of a particular user arestored in preference database 234 of DNS server 142 or dial-up server175. In this embodiment, all of the user's preferences are centralizedin server 142 or 175, such that the user may use all of his or herpreferences even with different user devices. In this embodiment, a userlogging into the network software of server 142 or 175 could be providedwith access to his or her preference database based upon a loginidentifier associated with that user.

When processor 200 or 220 determines that content requested by a userincludes one of the data patterns stored within preference database 234,a hyperlink to the computer network resource that is associated with thematching data pattern is inserted in the electronic file for thatcontent. In one embodiment, the hyperlink is inserted in a manner whichdepends on a display code stored within display code database 236, whichis similar to display code database 218 (FIG. 3). The manner in whichthis occurs is described below.

In one embodiment, user account database 238 is provided for storingaccount data for users. User account database 238 is used for trackingthe amount of payments or other benefits due to users in response to theuse of preferences stored in preference database 216 or 234. Forexample, whenever user device 110, 120 or 130 inserts a hyperlink basedon a preference into an electronic file being retrieved by a userdevice, and/or the user activates a hyperlink inserted within a filebased upon a preference, the user device transmits an indication to DNSserver 142 or dial-up server 175. That server then updates user accountdatabase 238 to reflect any additional payment or benefit due to theuser. At the end of a billing cycle, the accumulated total of paymentsdue to each user stored within user account database 238 is accessed toprovide payment to each user. User account database 238 can alsoaccumulate payments that are due to users for accepting offers toinclude preferences in their viewpoints.

Referring to FIG. 5, an exemplary structure of preference database 216and/or 234 includes a plurality of records 260-272. Each record 260-272includes a plurality of fields 240-254, and defines one preference. Foreach record 260-272, fields 240-254 include N data pattern fields240A-240N, an address information field 242, a display code field 243,an expiration field 244, an originator field 246, a number of timesaccessed field 248, a number of times visited field 249, a number oftimes accessed since last visit field 250, a status field 252, and abenefit per use field 254. Database 216 or 234 may include other and/orless than all of these fields (e.g., database 216 may not includedisplay code field 243 if hyperlinks are provided or displayed in adefault manner).

For each record, fields 240A-240N define N data patterns that have beenassociated with the address stored in address information field 242. TheN data patterns are numbered 1-N, with N being any integer greater thanor equal to 1 (i.e., 1, 2, 3, . . . ). For example, fields 240A-240N ofrecord 260 define two data patterns (i.e., N=2) that are associated withthe URL “www.bookstore.com” (i.e., the address information stored infield 242). As shown in FIG. 5, a data pattern may have the form of auser-viewable text pattern (e.g., “book”) that may occur within aretrieved electronic file. A data pattern may also have the form of anon-viewable pattern, such as a particular pattern found in a metatag,script, applet, graphic, or any other data found in retrieved contentand describable by a data pattern.

As shown by records 268-272, a single data pattern stored within asingle field (i.e., field 240A) may be associated with one address. Forexample, fields 240A-240N of record 268 indicate the data pattern “soda”is the only data pattern that is associated with the address“www.sodaco.com”. Alternatively, as shown by records 260-266, multipledata patterns stored in multiple fields may also be associated with oneaddress. For example, fields 240A-240N of record 260 indicate that twodata patterns (i.e., “book” and “The Committee”) have been associatedwith the address of “www.bookstore.com”. Other fields may be used tostore additional data patterns associated with one address. For example,additional fields (not shown) of record 260 could store the datapatterns “soft-cover books” and “hard-cover books”, each of which isassociated with “www.bookstore.com” (in this example, N=4).

Alternatively, rather than or in addition to defining one or morespecific data patterns associated with a single address, acomputer-executable algorithm may be used to analyze received content todetermine if that content includes any variation of one (or more)defined data patterns. This approach would allow for the automaticidentification of multiple variations of a single data pattern. Forexample, assume that the data pattern “jump” is stored in a preferencedatabase. The algorithm could be applied to the words “jumped” and“jumping” in the retrieved content to determine that both of these wordsare variations of the stored data pattern “jump” since they share acommon root (i.e., “jump”). The algorithm could also identify any otherdata patterns within the retrieved content (e.g., “jumps”) which alsoshare this common root. All of these words could then be associated withthe address information associated with the word “jump”. While this sameresult may be achieved by defining multiple data patterns including allof the variations of the common root, it may not always be easy orpractical to predict all of the variations, in advance, for storagewithin fields 240A-240N of the preference database.

For each record in preference database 216 or 234, field 242 storesaddress information associated with the N defined data patterns. Theaddress information may be in the form of a numeric IP address (e.g.,field 242 of record 262 stores the numeric IP address 202.164.214.53).Alternatively, the address information may be a text-based URL that maylater be submitted to DNS server 142 for conversion to a numeric IPaddress (e.g., field 242 of record 260 stores the text-based URL of“www.bookstore.com”). Address information field 242 may also store oneor more markup language-based tags associated with the record. The tagmay identify, for example, the originator of the record in thepreference database (i.e., the party that added the record to thedatabase), or may provide detailed information about the identified URL.

In FIG. 5, the address information stored in field 242 of each record260-272 is independent, such that the N data patterns stored for eachrecord is associated with an independent computer network resource. Inthis case, the address information stored in field 242 of one record maybe different or the same as the address information stored in field 242for any other record.

Alternatively, the address information stored within preference database216 or 234 may be the same, or partially the same for every record. Forexample, an online bookstore could create a customized viewpoint thatincludes a record for each of a plurality of books, each recordproviding an association between the title of one of the books (storedin field 240A) and the URL of a Web site for that bookstore. The URL ofthe Web site for that bookstore may be stored in field 242 or, since thesame URL would be associated with every record, the URL may be storedonly once in database 216 or 234. According to another example, eachrecord of the customized viewpoint could provide an association betweenthe title of one of the books (stored in field 240A) and the URL of aWeb page specific to that book (e.g., a Web page with that specific bookalready placed in an electronic shopping cart). In this case, the URLassociated with each data pattern may include, for example, a baseportion which is the same for all of the books and a variable portionspecific to each book (e.g., “www.bookstore.com/The_Committee”). Theonline bookstore could then pay or provide benefits to frequent bookpurchasers for using the customized viewpoint. Then, when one of thefrequent book purchasers retrieves an electronic file including any ofthe book titles stored in the preference database, the file presented tothe user would be modified to include a hyperlink to the onlinebookstore. In this case, the viewpoint is customized for all of thefrequent book purchasers.

Whenever an electronic file is modified to include a hyperlink to acomputer network resource defined by a preference, the hyperlink will beinserted into the file in a particular manner. In one embodiment, thehyperlink is inserted into the file in a default manner. For example, ahyperlink may be included in a file by “converting” the matching datapattern into the hyperlink. In another embodiment, the manner in which ahyperlink is included within a file will be determined by a display codethat is stored within field 243. For example, based upon record 260, ahyperlink for “www.bookstore.com” will be included within an electronicfile according to a display code of “1”. The meaning of the variousdisplay codes is further described in relation to FIG. 6.

Expiration field 244 stores data indicating the expiration time or date,if any, for the preference represented by the corresponding record ofthe database. Expiration field 244 may identify a definitive “cut-off’date or time when the preference will be disabled or deleted, or anindication of an amount of time remaining before the correspondingrecord in the database is disabled or deleted. For example, field 244 ofrecord 260 indicates that the preference providing an associationbetween the data pattern “book” (field 240A) and the address informationfor “www.bookstore.com” (field 242) will expire on Dec. 31, 2002. Userdevice 110 may store the expiration data in expiration field 244 at thetime the record for the corresponding preference is created, based uponinformation provided by the party that establishes the preference. Forexample, the signal received by user device 110 at step 342 (see FIG. 9)may also include expiration information for a particular record that maybe updated.

Alternatively, preference database 216 or 234 could store a range ofdates or times during which a preference would, or would not, beeffective. For example, preference database 216 or 234 may include afield which allows a particular association to occur on Saturdays andSundays, but not weekdays, or to occur only during certain hours of theday. As another alternative, expiration field 244 could store datarepresentative of a number of associations or presentations that will bemade before the preference expires. For example, when a preference isstored within preference database 216, the value “100” could be storedin expiration field 244 for that preference, such that the preferencewill expire after it has been used to make 100 associations. In oneembodiment, expiration information may be stored in field 244 using anexpiration function. For example, the function “expire when field249=10” would cause the corresponding preference to expire when thenetwork resource pointed to by the address information has been visited10 times.

Originator field 246 stores information generally or specificallyidentifying the originator of the corresponding preference. Theoriginator is a party that generated the preference which defines theassociation between the data patterns in fields 240A-240N and thecorresponding address information in field 242. In embodiments in whichan originator is identified generally, field 246 may store any of avariety of general identifiers (e.g., “DEFAULT”, “USER”, “THIRD PARTY”,etc.). “DEFAULT” indicates that the originator of the preference was thepublisher or developer of the Web browser. “USER” indicates that theoriginator was the user, who may have generated and stored theassociation during an installation or update procedure for Web browser214. “THIRD PARTY” indicates the originator was a third party (e.g., anonline merchant, ISP, portal Web site, etc.) who generated and/or lastupdated the preference. Alternatively, rather than generally identifyingthe originator, field 246 may identify a specific originator. Forexample, field 246 of record 268 indicates that SODACO was the specificoriginator for that preference.

Fields 248, 249 and 250 store usage information for each of thepreferences described by a record of the preference database. Field 248stores data representing the number of times that each record has beenaccessed (i.e., the number of times that a Web browser has recognizedthat received content included data matching any of the N data patternsfor that record). Field 249 stores data representing the number of timesthat the network resource for that record has been visited by the user.Field 250 stores data representing the number of times that each recordhas been accessed since the user last visited the network resource byactivating a hyperlink generated using that record.

Fields 248 and 249 may be used to determine that a preference shouldexpire after that preference has been used to insert a hyperlink acertain number of times, or after a resource has been visited a certainnumber of times, respectively. For example, the data in field 248 may beused by a browser to determine that a preference should expire after 100links to an associated network resource have been incorporated intoretrieved content, and the data in field 249 may be used to determinethat a preference should expire after the user has visited thecorresponding computer network resource 20 times. Thus, the data storedin fields 248-250 allows for accurate tracking and reporting of usagedata for the preferences. This data can be supplied to, for example, theparties who were responsible for inserting the preferences into thepreference database, for use in determining payments or benefits due tothe user. Other usage fields may also be used, and fewer than all offields 248-250 may be needed. For example, field 250 may not be neededin particular embodiments.

Status field 252 stores, for each record, data representing a status forthe corresponding preference. In one embodiment, the user may enable ordisable each preference by changing the corresponding status data. Whenthe status data represents “ENABLED”, the preference is operational foruse in modifying an electronic file to include a link to a computernetwork resource associated with a matching data pattern. When thestatus data represents “DISABLED”, the preference is not operational foruse in modifying an electronic file to include a link to a computernetwork resource associated with a matching data pattern. In anotherembodiment, the status of each preference may be overridden by, forexample, a third party who wishes to update the preference databasebeing used by a user. One embodiment for overriding each preference isdiscussed below (FIG. 9).

Field 254 stores an indication of a benefit to be provided to the userper use of the corresponding preference. In one embodiment, field 254stores an amount paid per visit representing an amount due to a userwhenever the user activates a hyperlink generated using that preferenceto access the corresponding resource. Alternatively, instead of or inaddition to providing an amount paid per visit, field 254 stores anamount paid per inclusion representing an amount due to a user whenevera hyperlink is inserted within retrieved content based upon thatpreference (regardless of whether the user actually activates thehyperlink).

The benefit provided to a user may be a monetary amount, coupon, points,frequent flyer miles, etc. The benefit may be provided by the party thatinserted the preference, an organization to which the user belongs, theuser's ISP (e.g., the benefit amount may be deducted from the user's ISPbill, or any other bill), or another party that was responsible forcontrolling the insertion of records into the preference database.Benefit per use field 254 may be used for controlling third-partyinsertion of records into the preference database. For example, if athird party wants to change address information associated with a datapattern already identified in the preference database, the third partymay be required to offer a benefit per use that exceeds the benefit peruse stored in field 254 of the corresponding record before being allowedto alter the address information. Field 254 may store an indication of acurrency amount, or of some other benefit or value to be provided.Alternatively, field 254 may identify an index or ranking of a recordthat indicates the comparative value of the record as compared to otherrecords.

In certain embodiments, the viewpoint defined by a particular preferencedatabase 216 or 234 is customized for a particular user, who may have aunique user identifier, such as that indicated by reference numeral 256.For example, the preference database 216 or 234 shown in FIG. 5 definesthe viewpoint for a particular user who is identified by useridentification number 58120. A different user having a different useridentifier will use a different viewpoint. This customized preferencedatabase may, for example, be stored by the user device 110, 120 or 130being used by the user. Alternatively, this preference database may bestored by DNS server 142 or dial-up server 175, for use in determiningpreferences for a particular user, with the user's login identifier usedto select between his viewpoint and viewpoints of other users.

In other embodiments, a viewpoint may be customized for a particularclass or category of users rather than for a particular user. In theseembodiments, a category or class indicia (instead of a unique useridentifier) is associated with preference database 216 or 234 in orderto customize that database for use by users belonging to a particularcategory or class. For example, data representative of users belongingto the class of “sales agents” or “engineers” may be associated withdatabase 216 or 234 so that the viewpoint defined by that database isused for users who are sales agents or engineers, respectively.

Referring to FIG. 6, an exemplary structure of display code database 218and/or 236 defines different manners in which a hyperlink may beincluded within an electronic file. Database 218 and/or 236 includes aplurality of records 278-284, each defining a manner by which ahyperlink may be included within a received file. Each record includes afirst field 274 for storing the display code for the hyperlink,corresponding to the values in display code field 243 of preferencedatabase 216 and/or 234, and a second field 276 for storing datarepresenting the manner in which the hyperlink will be included in thefile. For example, if the display code is “1”, a hyperlink will beincluded by converting the matching data pattern into an indication ofthe hyperlink. If the display code is “2”, an indication of thehyperlink will be included as a footnote to the matching data pattern.If the display code is “3”, an indication of the hyperlink will beincluded within a margin adjacent to the matching data pattern. If thedisplay code is “4”, an indication of the hyperlink will be includedjust after the matching data pattern. In each case, the hyperlink willbe inserted in association with the matching data pattern.

Other manners of including a hyperlink within a received file may alsobe used. For example, an indication of a hyperlink could be includedwithin an “onMouseOver” tag. An “onMouseOver” is a JavaScriptinstruction used for testing the position of a pointer such as a mouse.The hyperlink indication could appear, for example, in a “balloon”window that emerges when the user places a pointer over a data patternand/or clicks on the data pattern with the pointer.

Referring to FIG. 7, an exemplary structure of user account database 238includes a plurality of records 296-299, each record having a useridentification number field 286, a user name field 288, a user contactinformation field 290, a user account information field 292, and anaccumulated total field 294. Field 286 stores an identifier thatuniquely identifies a user. Field 288 stores the user's name. Field 290stores contact information for the user, such as the user's mailingaddress, electronic mail address, telephone number, etc. Field 292stores user account information identifying a financial or other accountof the user, such as a credit card account, debit card account, ISPaccount, telephone account, electronic cash account, etc. Field 294stores the accumulated total of payments due to the user resulting fromthe use of the user's preferences. For example, based upon field 254 ofrecord 260 (FIG. 5), Susan Smith (i.e., the user identified by useridentification number 58120) will receive $0.25 from the third-party whoinserted record 260 into her preference database each time that sheactivates a hyperlink providing a linkage to “www.bookstore.com” thatwas included within presented electronic content due to her preference(assuming that field 254 stores an amount to be paid per visit to thatresource).

Referring to FIGS. 8A-8B, another embodiment of a method 300 forproviding a link in an electronic file being presented to a user isshown. Method 300 is performed by the Web browser of any of user devices110, 120 or 130 (FIG. 2A or 2B). Similar to method 10, method 300includes defining a customized viewpoint for the user including apreference for the user (not shown), generating a request for content(steps 302-308), receiving an electronic file corresponding to therequest (steps 310-312), and evaluating the electronic file to recognizea match between at least a portion of the file and the data pattern(steps 314-316). If no match is found, method 300 also includespresenting the file to the user without modification (step 318). Uponrecognizing a match, method 300 also includes modifying the electronicfile to include a link to the computer network resource associated withthe matching data pattern (step 320 of FIG. 8B), and presenting themodified file to the user (step 322 of FIG. 8B). As with method 10, theviewpoint may include one or more than one preference, and eachpreference may provide an association between one or more than one datapattern and a computer network resource. The following descriptionassumes that the user device is user device 110 within network 100 (FIG.2A). A similar description would apply for user device 120 or 130, andif user device 110 was coupled to network 170 of FIG. 2B.

At step 302, user device 110, operating Web browser 214, receivesaddress data (e.g., a text-based URL or numeric IP address) from ahyperlink embedded into a document being viewed by the user. The addressdata may include an address corresponding to remotely-stored Web sitecontent. In one embodiment, the address data is received by user device110 in response to the user initiating a request for content byactivating the hyperlink. Alternatively, the address data may bereceived after the user initiates a request for content by entering theaddress information into an address bar area of the browser's userinterface. In each case, the request is initiated by the user. Inanother alternative, the address data is received without beinginitiated by the user. For example, the address data may have beenreceived in response to an automatic refresh function that is beingperformed by the Web browser, or in response to a default mechanism whenthe browser is launched (e.g., similar to MSN.COM™).

At step 304, if the address data is in the form of a text-based URL,user device 110 transmits the address data to computer network 100 (FIG.2A). In computer network 100, this involves transmitting the receivedaddress data (i.e., the text-based URL) to DNS server 142 via LAN 132.Alternatively, in computer network 170 (FIG. 2B), step 304 would involvetransmitting the received address data to dial-up server 175 via atelephone modem or other communication interface (e.g., DSL or cablemodem interface).

At step 306, user device 110 receives the IP address which correspondsto the address data from DNS server 142. Generally, the IP address willbe expressed numerically as opposed to being expressed textually. Toprovide the IP address, DNS server 142 receives the text-based addressdata that was transmitted by user device 110 at step 304, queries adatabase for a record which associates the text-based address data tothe corresponding IP address, and returns the numeric IP address data touser device 110. Note that steps 304 and 306 may be omitted if thenumeric IP address was received at step 302.

At step 308, user device 110 uses the received IP address data totransmit a request to the corresponding host Web server 140 via router144, the Internet 160, and router 150. The request includes a header(i.e., a numeric code assigned to a request for content identifying auser's unique IP address). Either the LAN 132 or the ISP server assignsa numeric header corresponding to the user device, which is integratedwith the numeric IP address information. The numeric IP addressinformation is then transmitted to and received by a router whichexecutes packet-routing software to accurately and efficiently transmitthe request for access of the desired content to the appropriate Webserver 140.

At step 310, user device 110 receives a signal from the host Web server140 acknowledging that the host Web server 140 received the request forremotely-stored content. User device 110 may also provide the user withan indication that this signal was received in a status line area of theWeb browser interface (e.g., “Web Site Found-Waiting for Reply”). Usingthe received header information, the host Web server 140 transmittedthis signal to user device 110 to indicate that the request for contentwas received, and input the request to a queue to be addressedsequentially upon fulfillment of other pending requests for access tothe desired content. The host Web server 140 may include severalcomputers, including mirror site servers. Alternatively, the host Webserver does not transmit such an indication to the user device 110, anddevice 110 merely waits to receive the requested content.

At step 312, user device 110 receives at least one markup language-basedelectronic file from the host Web server 140. This file was transmittedby the host Web server 140 after accessing the requested content. Thisfile includes computer-readable code that dictates the formation of thecontent upon presentation to the user. The code itself may also includeURL's associated with supplementary content located on the requestedhost server, or on a separate host server. The requested content may bedelivered completely, or in parts. For example, text and graphicinformation may be transmitted separately as different files to beassembled by the user device for presentation to the user. At thispoint, the requested markup language-based file has been received byuser device 110, but has not yet been presented (e.g., displayed) to theuser.

At step 314, user device 110, executing Web browser 214, accessespreference database 216, and compares the data patterns 240A-240N storedwithin preference database 216 with the retrieved electronic file todetermine if any portion of the electronic file matches any of the datapatterns stored in that database. The preference database 216 may beaccessed from local and/or remote storage. In various embodiments,preference database 216 may be integrated with the user's Web browseror, alternately, the LAN or ISP server may be involved in accessing thepreference database. As described above, preference database 216comprises one or more preferences, each preference providing anassociation between at least one data pattern that may occur in theretrieved content (e.g., in the markup language-based electronic code)and the address information for the corresponding computer networkresource (e.g., numeric IP or text-based address data of the computernetwork resource).

At step 316, user device 110 determines if any portion of the electronicfile matches any data pattern stored in preference database 216. In onespecific example, user device 110 compares the user-viewable textportion of the markup language-based code that comprises the electronicfile with the data patterns 240A-240N stored in preference database 216.The Web browser of user device 110 (in the browser embodiment) or aserver at another location (in the server embodiment) compares all ofthe user-viewable text portions of the markup language-based code witheach data pattern in the preference database.

In one embodiment, to recognize a “match”, user device 110 requires aportion of the requested content to be the same as a data pattern storedin preference database 216. For example, if a preference in preferencedatabase 216 defines data patterns including “jump” and “jumping”, amatch may be recognized only if one of those data patterns appears in aportion of the requested content. In another embodiment, to recognize amatch, user device 110 analyzes the requested content to determine ifany portion of that content has a predetermined relationship with astored data pattern. For example, the predetermined relationship mayresult in a match being recognized if a portion of the requested contentshares a common root with a stored data pattern (e.g., the word “jumped”may be recognized as matching stored data pattern “jump” since theyshare a common root). Other relationships may also be used to find thata portion of requested content matches a stored data pattern. Forexample, if the stored data pattern comprises the United States flag,then a portion of the requested content may be found to match the storeddata pattern if that portion includes certain combinations of stars andstripes. As another example, if the stored data pattern comprises agraphic, a portion of the requested content may be found to match thestored data pattern if that portion includes more than a predeterminedpercentage (e.g., 90%) of the same pixels. Thus, a portion of requestedcontent may be recognized as matching a stored data pattern if thatportion has a sufficient relationship to the stored data pattern.Various data pattern recognition techniques may be used to determine ifa match occurs.

At step 318, if no part of the requested content (e.g., no part of theuser-viewable text portion of the markup language-based code) matches adata pattern stored in preference database 216, user device 110 displaysthe markup language-based file to the user as received (i.e., withoutmodification). If, however, any part of the requested content matchesany data pattern stored in the preference database, then processingcontinues at step 320 of FIG. 8B.

At step 320, user device 110 accesses preference database 216 todetermine the address information for any data pattern that wasrecognized to match user-viewable text in the received file, and insertsa hyperlink to the computer network resource corresponding to thataddress information into the markup language-based file for subsequentdisplay to the user via the output device(s) 206 of device 110. Thehyperlink may be inserted into the file such that an indication of thelink will be displayed in association with (e.g., at or substantiallyadjacent to) the original location of the matching user-viewable text(i.e., the matching data pattern). For example, a hyperlink may beinserted into the file such that, when an indication of the hyperlink isdisplayed to the user, the hyperlink will be located at or substantiallyadjacent to the location of the matching data pattern. The indication ofthe hyperlink will be “substantially adjacent to” the location of thematching data pattern if a user will perceive the hyperlink as beingassociated with the matching data pattern. Thus, user device 110 (or aseparate server) effectively modifies the user-viewable text portion ofthe markup language-based code to indicate one or more supplementalhyperlinks in accordance with preference database 216.

A retrieved electronic file may be altered to include a hyperlinkindication according to the display code stored in field 243 of therecord of the corresponding preference. For example, assume that Webbrowser 214 causes user device 110 to recognize that a portion of textin the user-viewable portion of requested content matches the datapattern “The Committee” stored in field 240N of record 260 in preferencedatabase 216. User device 110 may modify the requested content toinclude a hyperlink for the matching data pattern (e.g., a hyperlink to“www.bookstore.com”, based upon field 242 of record 260). Since thedisplay code for this preference is “1”, user device 110 will include ahyperlink indication within the requested content by “converting” thematched data pattern into the hyperlink. For example, if the requestedcontent includes the data pattern “The Committee” as plain text, the Webbrowser may replace this text with a hyperlink which is displayed to theuser as “The Committee” so that, if the user then activates thishyperlink, user device 110 will request an electronic file from theassociated network resource (“www.bookstore.com”).

Alternatively, using a display code, a hyperlink indication may bedisplayed to a user in association with a matched data pattern by beingplaced at or adjacent to that data pattern. For example, a hyperlinkindication may be placed just after “The Committee” (display code “4”),or just after the end of the sentence containing “The Committee” (e.g.,“To purchase this book online, click on www.bookstore.com”). As thisexample shows, additional text may be inserted in the requested contentto describe the hyperlink to the user. This text may be stored inanother field (not shown) of preference database 216 or display codedatabase 218, 236. A hyperlink indication may also be displayed at otherlocations in the requested content that provide an association with thematched pattern. For example, an indication may be placed in a footnotefrom the matched pattern (display code “2”), or in a margin adjacent tothe matched pattern (display code “3”).

When a hyperlink associated with a matching data pattern is insertedinto requested content, any existing hyperlink in the requested contentmay, or may not, be overridden with the inserted hyperlink. The Webbrowser may determine whether an existing hyperlink is present within auser-viewable text portion and, if so, overwrite (or not overwrite) thatexisting hyperlink with a new hyperlink associated with a matching datapattern. For example, if the original requested content includes: “Werecommend ‘The Committee’. To purchase this book online, click onwww.departmentstore.com”, the browser could replace the hyperlink“www.departmentstore.com” with the hyperlink “www.bookstore.com”. Byactivating this hyperlink, the user may then access “www.bookstore.com”in accordance with his or her previously-established viewpoint.

At step 322, the altered markup language-based electronic file ispresented (e.g., displayed) to the user via the output device(s) 206 ofuser device 110. This file includes a hyperlink for the addressinformation stored within preference database 216 for each matchinguser-viewable text portion of the markup language-based code, asdetermined above. If the user activates one of these hyperlinks, he orshe will access the computer network resource specified by the addressinformation. Thus, additional Web traffic resulting from the display ofthe altered markup language-based file may be directed to one or morethird-party Web sites as dictated by the preference database.

At step 324, user device 110 updates the usage fields for each record ofpreference database 216 for which a data pattern was found to match aportion of the requested content. In particular, user device 110 updatesfields 248 and 250 to reflect the number of times accessed and thenumber of times accessed since last visit. For example, user device 110may increment by one the numeric data stored within fields 248 and 250of each record determined to store a matching data pattern. Fields 248and 250 are maintained for tracking the number of occurrences oftext-based user-viewable content and the display of resultant hyperlinksassociated therewith, and may be used to provide data for billingpurposes and/or for providing benefits to the user.

At step 326, user device 110 transmits a notification(s) to all of theoriginators identified by preference database records as having matcheddata patterns. For each record of the preference database that wasaccessed in step 320 and used for inserting a hyperlink into content,the originator data in field 246 of the record is used to generate anotification to the originator of the record indicating that the recordwas used. This notification may or may not trigger an action if theoriginator was the user or an administrator of the user's organization.If no action is triggered, the notification need not be provided.However, if the originator was a third party that offered compensationor another benefit for the use of associations that were inserted by thethird party into the preference database, this notification may be usedto trigger payment from the third party to the user or anotherdesignated recipient. Alternatively, a coupon may be delivered, or apoints value in an incentive program may be incremented, in response toreceiving this notification. Other forms of benefit or compensation mayalso be used by each third-party organization wishing to have recordsincluded within the preference database used by a user. In otherembodiments, instead of generating a notification to the originator of arecord each time that the record is used, data fields 248, 249 and 250are used to track the usage of each record, and billing/notification isperformed afterwards in batches.

In another embodiment, user device 110 transmits a notification to DNSserver 142 (FIG. 2A) or dial-up server 175 (FIG. 2B), and that serverupdates the accumulated total due the user stored in field 294 of useraccount database 238. This database can later be used to providepayments to the user, and to bill the originator of the preference thatcaused the link to be inserted.

After step 326, the user will view the modified electronic file that hasbeen presented to the user by the output device(s) of his or her userdevice 110. Ultimately, the user will close the Web browser, or willinitiate a request for additional content by delivering new address datato the browser. Thus, at step 328, the browser may receive new addressdata from the user, in a similar fashion to that described above withreference to step 302 (FIG. 8A).

At step 330, user device 110 evaluates if the new address data receivedfrom the user originated from a hyperlink previously inserted into anelectronic file presented to the user via the actions that are describedabove. If not (e.g., if the user typed a new address into an address boxof his or her Web browser, or clicked on a preexisting hyperlink in theretrieved content), then processing continues at step 304 (FIG. 8A) toretrieve the newly-requested content. If, however, the user has clickedon a hyperlink added by the Web browser according to the above-describedsteps, then user device 110 transmits a notification of the visitderived from the preference database record that was used to generatethe hyperlink to the originator of that record, at step 332.

In particular, at step 332, user device 110 accesses the record of thepreference database previously accessed at step 320 to obtain theoriginator information from field 246 of that record, and uses thisinformation to generate a notification to the originator that a visitwas initiated by that record. This notification may not be provided ifthe originator was the user, or was an administrator of the user'sorganization. If, however, the originator was a third party that offereda benefit (e.g., compensation) for visits initiated by use of theassociations inserted by the third party into preference database 216,this notification may trigger providing the benefit from the third partyto the user or to another designated recipient. Alternatively, a couponmay be delivered or the number of points in an incentive program (e.g.,frequent flyer miles) may be incremented in response to thisnotification. Other forms of benefits may also be used by eachthird-party organization wishing to entice visits to particular networkresources. In some embodiments, instead of generating a notification tothe originator of a record each time a visit is initiated by the record,a data field (as discussed above) is used to track the number of visitsinitiated by each record (e.g., by being incremented whenever a linkthat was added using the record is activated), and billing/notificationis performed later in batches. As another alternative, the notificationmay be sent to the DNS server 142 or dial-up server 175 for use inupdating the user account database 238 by, for example, incrementing theaccumulated total due to the user in field 294.

At step 334, user device 110 updates the usage fields for thecorresponding record in the preference database (i.e., the record thatwas accessed at step 320 to insert the hyperlink). In particular, userdevice 110 updates (e.g., increments by one) the numeric data stored infield 249 of that record to reflect the user's access of the computernetwork resource, and resets field 250 (i.e., sets field 250 equal tozero) of that record. The data in field 249 can be used for billingpurposes and/or for providing payment to the user. These actionsmaintain accurate statistics on the use of each record. After step 334,processing continues at step 304 (FIG. 8A) to obtain the newly-requestedcontent.

Referring to FIG. 9, an exemplary method 340 performed by user device110 for updating preference database 216 based upon a received signaland a monetary value associated with the signal is illustrated. In thismanner, an ISP or a user may benefit by allowing preference database 216to be updated by a third party, such as a merchant, a service provider,or a portal-type Web site. In accordance with method 340, preferencedatabase 216 may be implemented using a commonly-accessible “cookie”file. A “cookie” is a set of data created by a Web server and stored ona client system (e.g., a user's computer) which allows a Web site totrack a user's patterns and preferences. A “cookie” contains a range ofaddresses or URLs for which it is valid. When a user's browserencounters one of those URLs again, the browser sends a copy of thecookie to the Web server. Cookies may be used to identify the usercomputer, to instruct the Web server to transmit a customized version ofa Web page, to submit account information for the user, and for otheradministrative purposes.

Additionally, it is envisioned that the method of FIG. 9 may facilitatethe addition of data records to preference database 216 in a manner thatdoes not require any monetary or other benefit “override”. The additionof records into preference database 216 may be facilitated merely inresponse to an absence of certain data patterns within the preferencedatabase.

At step 342, user device 110 receives a signal indicating a thirdparty's interest in updating preference database 216. Optionally, thereceived signal may be received by the Web browser as part of viewingcontent, in which case the signal may be presented to the user in theform of a text box message or audio prompt for acceptance or decline bythe user. The signal may also be received by the user in the form of anelectronic mail message including or having a hyperlink leading to anexecutable script or program (e.g., an applet) for updating thepreference database. The signal preferably comprises data includingbenefit values and an indication of the particular records within thepreference database to be updated. Preferably the indication includesdata corresponding to one or more portions of user-viewable text. Thesignal may comprise other data needed to complete a record within thepreference database, such as expiration information for the proposedupdate.

At step 344, user device 110 analyzes the received signal and comparesthat signal to preference database 216 to determine if there is anyconflict between a requested addition to the preference database and arecord already existing in that database. This process involvesevaluating any data patterns (e.g., user-viewable text portion(s))identified by the received signal and comparing these data patterns todata patterns 240A-240N already existing in the preference database. Anymatch indicates a possible override of a record already in thepreference database. If there are no such overrides, preference database216 is updated as described below in relation to step 356. If there areone or more potential overrides, processing continues at step 346.

At step 346, user device 110 determines the value of each potentialoverride request. To determine the value, the browser in conjunctionwith processor 200 examines the received signal to determine the valueof the benefit identified by the override signal, and compares the valuewith a benefit that is identified in field 254 of the existingpreference database record.

In an embodiment in which field 254 stores an amount paid per visit, oran amount paid per hyperlink insertion, this analysis may involve thecomparison of monetary values. In non-monetary embodiments (e.g., wherethe benefit is a coupon, discount or points awarded in an incentiveprogram), the browser may access stored information regarding theranking of benefits to produce an index or ranking of the benefitprovided by the existing preference database entry and the benefitoffered by the received signal. If sufficient data to perform such acomparison is not available, the Web browser may produce a dialog boxfor display to the user that provides a comparison of the benefitdescribed by the current preference database entry with the benefitoffered by the received signal, and may request that the user identify acomparative ranking or an index value for use in determining whichbenefit is preferable. The browser can thus develop data for rankingbenefits, enabling automatic evaluation of the comparative preference ofthe user (e.g., frequent flyer miles vs. cash payments, or betweenfrequent flyer miles from different airlines).

At step 348, after the values of potential override requests aredetermined, user device 110 selects one potential override request. Atstep 350, user device 110 compares the determined value of the selectedpotential override request with the benefit per use value stored infield 254 of preference database 216 for the conflicting record that maybe overridden by the received signal. If the received signal identifiesa greater value, processing proceeds at step 352 and the preferencedatabase is updated to reflect the new preference or preferencesidentified by the received signal (by updating fields 240A-240N and242), any expiration data for the new preference (by updating field244), the new originator (by updating field 246), and the new benefitper use (by updating field 254). Usage fields 248-250 and status field252 are reset to their initial values, and the updating process iscomplete for that request.

After step 352, or after step 350 if the potential override request hasa lower value than the value of the existing preference database record,user device 110 determines at step 354 whether the received signalincluded any additional override request that should be analyzed. If so,processing returns to step 348 to select one of these additionaloverride requests.

After all of the potential override requests are processed, or if therewere no potential override requests, processing proceeds from step 354to 356. At step 356, preference database 216 is updated to reflect(e.g., by adding) any nonconflicting association(s) identified by thereceived signal. At this point, method 340 for updating the preferencedatabase is complete.

Method 340, as shown in FIG. 9, may automatically update the preferencedatabase upon receipt of a signal requesting an update. Alternately, thestep of updating the preference database to reflect any newpreference(s) may be postponed or canceled based upon a receivedaccept/decline response signal that is generated by the user via userdevice 110. The user may also individually accept and/or decline eachnew proposed preference. The Web browser may also be configured to allowthe user to select a certain level of involvement that the user desiresto have in updating the preference database.

In one embodiment, a user may specify a maximum number of customhyperlinks that will be allowed to appear within a single electronicfile. For example, a user could specify that only one association may bemade between a matching data pattern and an associated computer networkresource for a given electronic file, even if more than one data patternwithin the file matches one of the data patterns stored withinpreference database 216. The user can thus limit the extent to whichrequested content can be customized.

In another embodiment, a user may specify that his or her viewpoint maynot be modified to contain particular preferences or types ofpreferences. For example, a user could specify that his or her viewpointmay not be customized by a third-party to include any preferences thatprovide an association to an adult-oriented Web site, or an organizationcould specify that the viewpoints used by its members may not becustomized by a third-party to include preferences providing anassociation with any competing organization.

In one embodiment, an originator who wishes to add a new or updatedpreference to the viewpoint of a user may offer the user a benefit thatwill be provided to the user if the user agrees to accept the new orupdated preference. For example, if a third party wishes to add a newpreference to the viewpoint of a user, the potential override requestreceived by user device 110 at step 342 includes an offer, which ispresented to the user. The user may then accept or decline the newpreference. If the user declines, his or her viewpoint is not changed.If the user accepts, his or her viewpoint is modified to include the newpreference, and the user's account is credited with the offered benefit(e.g., by incrementing accumulated total field 294 for the user'srecord). Based on the terms of the offer, the user may then receiveadditional payments based upon use of the new or updated preference, aspreviously described.

To prevent the user from quickly deleting the new preference, the offerto add a new or updated preference may include a condition that must bemet for the user to receive the offer amount. For example, the conditionmay specify a time period during which the new or updated preferencemust remain in effect, and which cannot be overridden by the user.Alternatively, the condition may specify a minimum number of times thatthe preference must be accessed and used to insert a hyperlink intoreceived content, or a minimum number of times that the associatedcomputer network resource must be visited, during which the new orupdated preference must remain in effect. When a condition is present,the party establishing the preference may (but need not) withholdpayment to the user until the condition has been met.

As described above, a third party may pay a user for the right toinclude one or more preferences within the user's viewpoint, and/or foruses of one or more preferences within the user's viewpoint.Alternatively, any of these payments may be made by a third party toanother party who establishes or operates a viewpoint for use by one ormore users. For example, an organization may evaluate offers receivedfrom third parties for the right to insert preferences in the customizedviewpoint that is used by members of that organization. For a specificexample, a book club that provides its members with a viewpoint that iscustomized to include a variety of book-related preferences maydetermine which preferences to include in the viewpoint based on offersmade by online bookstores. If Bookstore1 offers $100.00 for the right toinclude a preference providing an association to its Web site, andBookstore2 offers $200.00 for the right to include a preferenceproviding an association to its Web site, the club may decide to acceptBookstore2's offer such that the customized viewpoint will drive thebook club's members to Bookstore2's Web site. The club and/or itsmembers then receive additional payments whenever the members use thatpreference.

Referring to FIG. 10, an alternative method 360 for updating orpopulating preference database 216 is performed via maintenance of theWeb browser by the user. In method 360, a user specifies one or moredata patterns (e.g., user-viewable text portions of markuplanguage-based electronic files), and corresponding address data to beincorporated upon receipt of a markup language-based file including amatching user-viewable text portion. Method 360 may be repeated to addadditional records to preference database 216.

At step 362, user device 110 creates a new record in the preferencedatabase. At step 364, user device 110 receives one or more datapatterns (e.g., user-viewable text) specified by the user, to be used asthe one or more data patterns for the new record. At step 366, userdevice 110 receives and stores address information to be associated withthe specified data patterns that are provided by the user. Next, at step368, the user-specified data patterns and the address informationreceived from the user are stored in the new record of the preferencedatabase. Thereafter, the preference database record is available foruse according to the process of FIGS. 8A and 8B for the receipt andmodification of content.

Referring to FIG. 11, still another method 370 for updating orpopulating the preference database is based upon installation of Webbrowser 214 by the user. In method 370, upon installation of Web browser214, a user may accept or reject the default preference settings thatwere previously stored by the publisher or developer of the Web browser.If the user wishes to reject one or more of the default preferencesettings, the user, as shown in method 360 (FIG. 10), may manuallyspecify a replacement preference setting.

At step 372, user device 110 provides a user with the option ofaccepting the default preference settings built into the installationprogram for the Web browser. If the user accepts the default settings,the process is done. However, if the user rejects the default settings,user device 110 displays the default preference settings to the userusing its output device(s) 206 at step 374. At step 376, user device 110provides the user with the option of modifying any or all of the defaultpreference settings. If the user does not choose to perform anymodification, the process is done. However, if the user wants to makeone or more modifications, processing continues at step 364 (FIG. 10) toallow the user to manually indicate one or more data patterns andaddress information.

While the invention has been illustrated by a description of variousembodiments and while these embodiments have been described inconsiderable detail, it is not Applicants' intent to restrict or limitthe scope of the appended claims to such detail. Other advantages andmodifications will be readily apparent to those of skill in the art. Forexample, various databases described above may reside, and variousfunctions may be performed, in other locations or via other devices. Forexample, while user account database 238 has been described as residingin DNS server 142 or dial-up server 175, user account database 238 couldalso be located within another computer in communication with userdevices 110, 120 and 130, such as another server coupled to LAN 132(FIG. 2A). This server would then receive indications from each userdevice whenever a payment or other benefit is earned by the respectiveuser, and would update the accumulated total for that user. As anotherexample, while the viewpoint defined by preference database 216 and/or234 have been described as residing in user device 110, 120 or 130and/or DNS server 142 or dial-up server 175, the viewpoint could resideat one or more other devices that operate in conjunction with the user'sdevice. For example, a viewpoint may be partially or completelyimplemented at a user's computer, a device operating with the user'scomputer (e.g., a firewall, a remotely-accessible library, a router, aserver, etc.), or another system.

Alternate Embodiments

In the Web browser embodiment described above, preference database 214resides within the user's Web browser, and is updated by a third party(e.g., an online merchant) that registers the data patterns, or by theuser. Alternatively, instead of interacting directly with users, amerchant (or other third party) who wants to include preferences in aviewpoint may interact with the provider or developer of the Web browserto establish default preferences leading to the Web site of themerchant. In this case, the provider or developer of the Web browserwould control updates to the default preference database, and the users'agreement to updates would not be needed. Such preferences would driveWeb traffic from content being viewed by users to the merchant's site.For example, a user installing the NETSCAPE NAVIGATOR® browser may beprovided with default preferences compiled by Netscape. A user may berequired to use these preferences. Alternatively, a user's preferencesmay be established entirely or partly by the user during installation ofthe browser, or later, to allow the user to entirely or partly overridethe default viewpoint.

Further, a user may input his or her own preferences to be associatedwith content to be viewed later. For example, a user may prefer to dohis or her book shopping at a particular Web site. The user couldregister a preference such that each time the name of his or herfavorite author occurs in a user-viewable text portion of a markuplanguage-based document that is being read, a hyperlink to thecorresponding bibliography Web page at that Web site would beautomatically inserted at the location of the author's name. Thus, auser utilizing a Web browser to view a Web page for a newly publishedbook review may access his or her choice of on-line bookseller simply byclicking on the author's name within the book review document.

In another embodiment, multiple parties may be involved in brokeringmodifications to a preference database. For example, an ISP such asAMERICA ON-LINE (AOL) may accept competitive bids from multiple on-linemerchants who seek to derive traffic from occurrences of data patterns(e.g., words or phrases) in documents presented to users. Once a userlogs-on to AOL, the preference database that is stored on the user'shard-drive could be automatically updated by AOL to reflect anynewly-registered preferences. Alternatively, the preference database mayreside at the user's ISP. In this manner, the results corresponding tothe updated preference database may be broadcast or reflected across alarge number of user devices, as reflected by the preference databasethat is centrally-maintained on an ISP server.

The above embodiment may also be implemented and practiced by a portalWeb site, such as “YAHOO!®”. For example, a portal Web site could createa preference database based upon bids made by online merchants. Then,before the Web site sends any content (e.g., search results, news,email, chat group messages, etc.) to a user, the Web site may include ahyperlink based on that preference database. For example, any Web siteuser receiving search results containing a data pattern that matches adata pattern stored by one of the preferences may be provided with aninserted hyperlink that leads to a computer network resource that hasbeen associated with that data pattern.

As another example, a news organization (e.g., CNN.com™) could registera number of data patterns relevant to current events with a portal Website (e.g., “YAHOO!®). For example, the news organization could registerthe keywords “Federal Investigation”, “Supreme Court decision”, “War inChechnya”, etc. Then, whenever any of the registered data patterns isfound on the portal Web site, the content could be marked up with a linkto the news organization. For example, a link to CNN.com™ could beinserted wherever “Federal investigation” is found on YAHOO!'s content.Thus, users of the portal Web site would be driven to the CNN.com™ site.

In one embodiment, users may be presented with offers made by onlinemerchants or ISPs who seek to derive or influence Web traffic based uponthe occurrence of data patterns such as single words or phrases withinuser-viewable text portions of documents. The users could then acceptthe offers to receive benefits. In one embodiment, a user who elects toallow his or her personal preferences to be updated by an on-linemerchant or ISP may receive a discount, a coupon or another type ofbenefit. For example, a user who previously indicated his preferredonline bookseller is “Bookstore1.com” may be willing to accept adiscount, such as 10% off of his first purchase, to allow“Bookstore2.com” (a competitor of “Bookstore1.com”) to adjust hispersonal preferences in its favor. For another example, an ISP maydecrease the price that is charged to the user for providing Internetaccess services in exchange for being allowed to update a preferencedatabase associated with the user (e.g., the user may receive a discountof $5.00/month from the normal access rate of $19.95/month). It is alsoenvisioned that a portal Web site may aggregate several preferenceupdates to be presented to a user in a batch.

As noted above, the preference database may reside within the userdevice as part of the user's Web browser, or may reside remotely (e.g.,at a dial-up ISP Server or LAN Server). The preference database may alsobe stored in cache, thus allowing it to be updated with “cookie” files.In this manner, a Web site may generate and store an indication of thepreference database currently associated with a particular user device.The preference database may alternatively reside as a remote library,accessible by the ISP Server, LAN Server, and/or the user device's Webbrowser program. The preference database may also reside in the RAM ofthe user device.

As described above, the user device processes retrieved content toinclude additional hyperlinks. The processing could also occur atanother location. For example, the processing may be performed at a LANserver, proxy server or firewall responsible for handling the Internettraffic for the members of an organization. Also, the processing couldbe performed by a server at an ISP as a value-added service for itscustomers. Further, the processing may be performed at an Internet siteso that all content retrieved via that site would be delivered withappropriate hyperlinks incorporated therein.

In one embodiment, the preference database stores or uses records basedupon one or more additional criteria or conditions (e.g., geography) forcreating a specific association. For example, a user in New England whois viewing a document including one or more occurrences of theuser-viewable text portion “groceries” may be directed to the Web siteof a grocer conducting business in New England. The user's geographiclocation may be determined, for example, from his contact information(e.g., zip code, telephone number, street address, ISP provider, etc.)stored in field 290 of user account database 238. Meanwhile, anotheruser located in Texas viewing the same document may be presented with alink to the Web site of a different grocer conducting business in Texas.This result may be achieved by inserting associations into the requestthat represent the geographic location of the user. Alternatively, thisresult could be achieved using geographic information (e.g., zip code)for each preference such that any preferences that are geographicallyspecific to the current location of the user could be preferred overpreferences that are not geographically specific to the user's location,or over preferences geographically specific to an area that does notinclude the location of the user.

In one embodiment, a user may indicate a preference for certain Websites to be included and/or excluded from his or her preference databaseby an ISP or by a third-party. For example, a user may indicate that hisor her preference database may be updated by an ISP or third party toreflect links for merchants A and B, while excluding links for merchantD. Alternatively, a user may indicate a preference for one or moreparticular classes of Web sites to be included and/or excluded from hisor her preference database. The user-specified preferences could beentered into the database during, for example, a setup or installationroutine such as that described in relation to FIGS. 10-11.

In one embodiment, the features of the present invention may beactivated and inactivated by a user using a button on the toolbar areaof the browser interface. Similar to a “refresh” function, the usercould initiate such a “view preferred links” function. In this manner, auser of the disclosed Web browser may view Web content either asintended by the content's authors or publishers, or in accordance withthe preference database of the invention.

In a similar embodiment, the hyperlinks corresponding to theuser-viewable text portions within retrieved markup language-basedelectronic files may be displayed separately from the user-viewable textitself. For example, if the user device is a personal computer, thelinks may appear in a separate area or “frame” of the output screen ofthe user device. The links may also appear using a different color, fontor other attribute. The user may then select whether to activate theoriginal link, if any, or a “preferred” link.

As described above, a Web browser in accordance with an embodiment ofthe invention can modify an electronic file being presented to a user toinclude a link to a computer network resource associated with a datapattern matching one of the data patterns stored in a viewpoint.Alternatively, in addition to or in lieu of including such a link, a Webbrowser can modify an electronic file being presented to a user toinclude content retrieved from the computer network resource that isassociated with the matching data pattern. For example, if a user'sviewpoint specifies an association between the data pattern “TheCommittee” and the URL for an online bookstore, and the user retrievesan electronic file which includes the data pattern “The Committee”, theuser's Web browser could recognize the match between the data pattern“The Committee” in the electronic file and the viewpoint, then contactthe online bookstore to receive content associated with this datapattern (e.g., a book review for the book entitled “The Committee”), andthen modify the electronic file being presented to the user to includeboth the book review for the book “The Committee” and the URL of theonline bookstore. The user could then read the book review as part ofthe electronic file to decide whether to activate the URL of the onlinebookstore to purchase the book. For another alternative, the viewpointitself could store content associated with the one or more data patternsof a preference within, for example, another field of the record forthat preference. Then, when the data pattern is recognized as beingwithin a received electronic file, the Web browser could modify the fileto include the content that is stored in association with thatpreference.

In another embodiment, a Web browser can modify an electronic file beingpresented to a user to include a “purchasing link” which, if activated,allows a user to buy a product from a computer network resource withoutbeing required to visit that network resource. For example, if a user'sviewpoint specifies an association between the data pattern “TheCommittee” and the URL for an online bookstore, and the user retrievesan electronic file which includes the data pattern “The Committee”, theuser's Web browser could recognize the match between the data pattern“The Committee” in the electronic file and the viewpoint. In response,the Web browser could modify the electronic file to include a“purchasing link” by, for example, adding a hyperlink stating: “Clickhere to purchase ‘The Committee’ for $19.95”. By clicking on thishyperlink, the user could purchase “The Committee” via an appropriatemessage sent by the Web browser to the online bookstore, or could addthe book to his or her electronic shopping cart for subsequent purchase.

It is to be understood that the embodiments and variations shown anddescribed herein merely illustrate the principles of this invention andthat various modifications may be implemented by those skilled in theart without departing from the scope and the spirit of the invention.For example, while the invention has been illustrated as beingimplemented using particular computer networks including hardwarecomponents such as user devices, domain name servers, dial-up servers,routers, proxy servers and Web servers, the invention could beimplemented using other hardware components and/or otherinterconnections therebetween. Some or all of the network components maybe implemented by discrete hardwired components instead of computers.Furthermore, while the above description refers to particular databases,other databases or data structures may be used. Also, while variousembodiments of methods in accordance with the invention have beendiscussed as including specific steps listed in specific orders, thesteps may be performed in different combinations and orders. While othermodifications will be evident to those of ordinary skill in the art, thepresent invention is intended to extend to those modifications thatnevertheless fall within the scope of the appended claims.

1. A method comprising: storing, in a memory of a user computer, aplurality of preferences, wherein each preference provides anassociation between one or more text patterns and one URL; allowing auser to select, using an input device, a preference from the pluralityof preferences; receiving a request from a user to retrieve markuplanguage-based electronic content; generating a request for content froma Web server; in response to the request for content, receiving a markuplanguage-based electronic file, in which the electronic file comprises auser-viewable text portion; determining if a portion of theuser-viewable text portion matches any of the text patterns of theplurality of preferences; if it is determined that a portion of theuser-viewable text portion matches a text pattern, modifying theelectronic file to include an HTML hyperlink to the URL that isassociated with the matched text pattern, in which the hyperlink isincluded substantially at the location of the matched portion of theuser-viewable text portion, and presenting the modified electronic fileto the user so that the hyperlink appears in place of the matchedportion of the user-viewable text portion.